--- 汇中 scl-60(62) 80(82) 汇中协议 dtype=15,addr=41H(默认)
--- 后期可以自定义addr（通信地址），需要网络设置
module(..., package.seeall)
local logtag = "scl-60"
local dtu, udtu ,addr = {}, {}, 65
function setDtu(_dtu, _udtu)
    dtu, udtu = _dtu, _udtu
    if udtu and tonumber(udtu.dtype) == 15 then sys.taskInit(init) end
end
function _pro(d) 
    local ins = tonumber(d:sub(24, 33))/100
    local val = tonumber(d:sub(37, 48))/100
    lcd.LCD_DATA[3]= "累计:"..val.." 瞬时:"..ins
    usrdata.update({val,ins})
end
function init()
    sys.wait(200)
    if udtu.addr and tonumber(udtu.addr) then
        addr = tonumber(udtu.addr)
    end
    local read_dat = string.format("2A%02X3A52",addr)
	while true do
        sys.publish("UART_SENT_RDY_3", 3, read_dat:fromHex())
        local res, d = sys.waitUntil("UART_READ_DONE_NEXT_3" , 5000)
        if res then
            if d then
                _pro(d)
            end
            sys.wait(5000)
        else
            lcd.LCD_DATA[3]="SCL_6X_8X READ TIMEOUT"
        end
	end 
end
